package com.jeesite.modules.tk.entity;

import javax.validation.constraints.Size;
import java.util.Date;
import com.jeesite.common.mybatis.annotation.JoinTable;
import com.jeesite.common.mybatis.annotation.JoinTable.Type;
import com.fasterxml.jackson.annotation.JsonFormat;

import com.jeesite.common.entity.DataEntity;
import com.jeesite.common.mybatis.annotation.Column;
import com.jeesite.common.mybatis.annotation.Table;
import com.jeesite.common.mybatis.mapper.query.QueryType;
import com.jeesite.modules.ic.entity.IcUser;

/**
 * tk_my_taskEntity
 * @author 李寒冰
 * @version 2025-02-10
 */
@Table(name="tk_my_task", alias="a", label="tk_my_task信息", columns={
		@Column(name="id", attrName="id", label="id", isPK=true),
		@Column(name="project_name", attrName="projectName", label="项目名称/APP名称", queryType=QueryType.LIKE),
		@Column(name="title", attrName="title", label="标题", queryType=QueryType.LIKE),
		@Column(name="user_id", attrName="userId", label="商家ID"),
		@Column(name="explain_str", attrName="explainStr", label="描述"),
		@Column(name="submit_times", attrName="submitTimes", label="提交时常"),
		@Column(name="examine_times", attrName="examineTimes", label="审核时常"),
		@Column(name="dev_type", attrName="devType", label="设备类型 0 不限 1安卓 2 IOS", isUpdateForce=true),
		@Column(name="zuodan_num_type", attrName="zuodanNumType", label="做单方式", isUpdateForce=true),
		@Column(name="price", attrName="price", label="用户单价", isUpdateForce=true),
		@Column(name="old_price", attrName="oldPrice", label="悬赏单价", isUpdateForce=true),
		@Column(name="buzhou_list", attrName="buzhouList", label="做单步骤"),
		@Column(name="create_time", attrName="createTime", label="创建时间/报名时间", isUpdateForce=true),
		@Column(name="my_task_status", attrName="myTaskStatus", label="我的任务状态", comment="我的任务状态：0进行中 1待审核 2已通过  3未通过"),
		@Column(name="status", attrName="status", label="0正常 1删除", isUpdate=false),
		@Column(name="fail_explain", attrName="failExplain", label="未通过说明"),
		@Column(name="do_time", attrName="doTime", label="操作时间", isUpdateForce=true),
		@Column(name="task_id", attrName="taskId", label="商家任务id"),
		@Column(name="update_time", attrName="updateTime", label="更新时间", isUpdateForce=true),
		@Column(name="task_user_id", attrName="taskUserId", label="悬赏人ID"),
		@Column(name="task_type", attrName="taskType", label="任务类型"),
		@Column(name="task_code", attrName="taskCode", label="任务编号"),
		@Column(name="deadline", attrName="deadline", label="截止时间", isUpdateForce=true),
		@Column(name="my_task_status_before", attrName="myTaskStatusBefore", label="结单前的状态"),
		@Column(name="type", attrName="type", label="任务类型（1用户任务 2小转帮 3平台任务）"),

	}, orderBy="a.id DESC"
)
public class TkMyTask extends DataEntity<TkMyTask> {
	
	private static final long serialVersionUID = 1L;
	private String projectName;		// 项目名称/APP名称
	private String title;		// 标题
	private String userId;		// 商家ID
	private String explainStr;		// 描述
	private String submitTimes;		// 提交时常
	private String examineTimes;		// 审核时常
	private Long devType;		// 设备类型 0 不限 1安卓 2 IOS
	private Long zuodanNumType;		// 做单方式
	private Double price;		// 用户单价
	private Double oldPrice;		// 悬赏单价
	private String buzhouList;		// 做单步骤
	private Date createTime;		// 创建时间/报名时间
	private String myTaskStatus;		// 我的任务状态：0进行中 1待审核 2已通过  3未通过
	private String failExplain;		// 未通过说明
	private Date doTime;		// 操作时间
	private String taskId;		// 商家任务id
	private Date updateTime;		// 更新时间
	private String taskUserId;		// 悬赏人ID
	private String taskType;		// 任务类型
	private String taskCode;		// 任务编号
	private Date deadline;		// 截止时间
	private String type;

	private IcUser icUserShangjia;
	private IcUser yonghuUser;

	private String weiquanId;

	private String myTaskStatusBefore;

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}

	public String getMyTaskStatusBefore() {
		return myTaskStatusBefore;
	}

	public void setMyTaskStatusBefore(String myTaskStatusBefore) {
		this.myTaskStatusBefore = myTaskStatusBefore;
	}

	public String getWeiquanId() {
		return weiquanId;
	}

	public void setWeiquanId(String weiquanId) {
		this.weiquanId = weiquanId;
	}

	public IcUser getIcUserShangjia() {
		return icUserShangjia;
	}

	public void setIcUserShangjia(IcUser icUserShangjia) {
		this.icUserShangjia = icUserShangjia;
	}

	public IcUser getYonghuUser() {
		return yonghuUser;
	}

	public void setYonghuUser(IcUser yonghuUser) {
		this.yonghuUser = yonghuUser;
	}

	public TkMyTask() {
		this(null);
	}
	
	public TkMyTask(String id){
		super(id);
	}
	
	@Size(min=0, max=255, message="项目名称/APP名称长度不能超过 255 个字符")
	public String getProjectName() {
		return projectName;
	}

	public void setProjectName(String projectName) {
		this.projectName = projectName;
	}
	
	@Size(min=0, max=255, message="标题长度不能超过 255 个字符")
	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}
	
	@Size(min=0, max=50, message="商家ID长度不能超过 50 个字符")
	public String getUserId() {
		return userId;
	}

	public void setUserId(String userId) {
		this.userId = userId;
	}
	
	@Size(min=0, max=255, message="描述长度不能超过 255 个字符")
	public String getExplainStr() {
		return explainStr;
	}

	public void setExplainStr(String explainStr) {
		this.explainStr = explainStr;
	}
	
	@Size(min=0, max=10, message="提交时常长度不能超过 10 个字符")
	public String getSubmitTimes() {
		return submitTimes;
	}

	public void setSubmitTimes(String submitTimes) {
		this.submitTimes = submitTimes;
	}
	
	@Size(min=0, max=10, message="审核时常长度不能超过 10 个字符")
	public String getExamineTimes() {
		return examineTimes;
	}

	public void setExamineTimes(String examineTimes) {
		this.examineTimes = examineTimes;
	}
	
	public Long getDevType() {
		return devType;
	}

	public void setDevType(Long devType) {
		this.devType = devType;
	}
	
	public Long getZuodanNumType() {
		return zuodanNumType;
	}

	public void setZuodanNumType(Long zuodanNumType) {
		this.zuodanNumType = zuodanNumType;
	}
	
	public Double getPrice() {
		return price;
	}

	public void setPrice(Double price) {
		this.price = price;
	}
	
	public Double getOldPrice() {
		return oldPrice;
	}

	public void setOldPrice(Double oldPrice) {
		this.oldPrice = oldPrice;
	}
	
	public String getBuzhouList() {
		return buzhouList;
	}

	public void setBuzhouList(String buzhouList) {
		this.buzhouList = buzhouList;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}
	
	@Size(min=0, max=10, message="我的任务状态长度不能超过 10 个字符")
	public String getMyTaskStatus() {
		return myTaskStatus;
	}

	public void setMyTaskStatus(String myTaskStatus) {
		this.myTaskStatus = myTaskStatus;
	}
	
	@Size(min=0, max=255, message="未通过说明长度不能超过 255 个字符")
	public String getFailExplain() {
		return failExplain;
	}

	public void setFailExplain(String failExplain) {
		this.failExplain = failExplain;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getDoTime() {
		return doTime;
	}

	public void setDoTime(Date doTime) {
		this.doTime = doTime;
	}
	
	@Size(min=0, max=50, message="商家任务id长度不能超过 50 个字符")
	public String getTaskId() {
		return taskId;
	}

	public void setTaskId(String taskId) {
		this.taskId = taskId;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getUpdateTime() {
		return updateTime;
	}

	public void setUpdateTime(Date updateTime) {
		this.updateTime = updateTime;
	}
	
	@Size(min=0, max=50, message="悬赏人ID长度不能超过 50 个字符")
	public String getTaskUserId() {
		return taskUserId;
	}

	public void setTaskUserId(String taskUserId) {
		this.taskUserId = taskUserId;
	}
	
	@Size(min=0, max=255, message="任务类型长度不能超过 255 个字符")
	public String getTaskType() {
		return taskType;
	}

	public void setTaskType(String taskType) {
		this.taskType = taskType;
	}
	
	@Size(min=0, max=255, message="任务编号长度不能超过 255 个字符")
	public String getTaskCode() {
		return taskCode;
	}

	public void setTaskCode(String taskCode) {
		this.taskCode = taskCode;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getDeadline() {
		return deadline;
	}

	public void setDeadline(Date deadline) {
		this.deadline = deadline;
	}
	
}